#if !defined(__APP_DEVICE_H)
#define __APP_DEVICE_H

#include "app_buffer.h"
#include <pthread.h>


// 设备结构体
typedef struct {
    char *filename; // 设备文件  蓝牙串口
    int fd; // 文件描述符
    Buffer *up_buffer; // 上行缓冲区
    Buffer *down_buffer; // 下行缓冲区
    pthread_t read_thread; // 读线程的标识
    int is_running; // 是否正在运行
    long last_write_time; // 最后一次写入的时间
    // 读后处理函数 =》将读取的数据转换为字符数组消息
    int (*post_read)(char *data, int len);
    // 写前处理函数 => 将字符数组消息转换为要写入格式的数据
    int (*pre_write)(char *data, int len);

} Device;


// 初始化设备 （并不启动设备）
Device *app_device_init(char *filename);

// 启动设备
int app_device_start(void);

// 销毁设备
int app_device_destroy(void);


#endif // __APP_DEVICE_H
